/*
 * @lc app=leetcode.cn id=804 lang=cpp
 *
 * [804] 唯一摩尔斯密码词
 */

// @lc code=start
class Solution
{
public:
  static constexpr char* repr[26] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};

  int uniqueMorseRepresentations(vector<string>& words)
  {
    unordered_set<string> ans;
    for (string& w : words)
      ans.insert(Represenation(w));
    return ans.size();
  }

  string Represenation(const string& word)
  {
    string s;
    for (const char& c : word)
      s += repr[c - 97];
    return s;
  }
};
// @lc code=end
